home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PBLIB1 / UNITS / MISCOTHR.INC < prev    next >
Text File  |  1994-02-18  |  3KB  |  90 lines

  1.  
  2.  
  3. {SECTION  ExecuteCommand }
  4. Function  ExecuteCommand(cmd : string) : integer;
  5. var err            : integer;
  6.     CommandComFile : string[50];
  7.      begin
  8.      err := 0;
  9.      CommandComFile  := getenv('COMSPEC');
  10.      if FileExists(CommandComFile) then
  11.           begin
  12.           {writeln('Execing [',CommandComFile,'] [',cmd,']');}
  13.           SwapVectors;
  14.           Exec(CommandComFile,'/C ' + cmd);
  15.           SwapVectors;
  16.           err := DOSError;
  17.           if err = 8 then writeln('EXEC failed 8 (MAKE YOUR HEAP SMALLER!)  err= ',err);
  18.           end
  19.      else begin
  20.           writeln('Unable to find program ',CommandComFile);
  21.           err := 999;
  22.           end;
  23.      ExecuteCommand := err;
  24.      end;
  25.  
  26.  
  27. {SECTION TPC }
  28. Function TPC(fname,options : string; var err : integer) : boolean;
  29.             {[EXEC] - Invokes the compiler directly, finds a few errors}
  30.  
  31. { Expected errors  = -1 -> compile failed, no output file
  32.                    = 15 -> input file not found
  33. }
  34.  
  35. var ok   : boolean;
  36.     line,fn,fn1 : string;
  37.      begin
  38.      fn := fname;
  39.      ok := true;
  40.      err := 0;
  41.      line := fn + ' '+ options;
  42.      if not fileexists(fn) then
  43.           begin
  44.           err := 15;
  45.           ok := false;
  46.           end;
  47.      fn1 := fn; forceext(fn1,'tpu');
  48.      if fileexists(fn1) then erasefile(fn1)
  49.      else begin
  50.           fn1 := fn; forceext(fn1,'exe');
  51.           if fileexists(fn) then erasefile(fn1);
  52.           end;
  53.      SwapVectors;
  54.      exec('c:\bp\bin\tpc.exe',line);
  55.      SwapVectors;
  56.      if DosError <> 0 then
  57.           begin
  58.           err := DosError;
  59.           ok := false;
  60.           end
  61.      else begin
  62.           fn1 := fn; forceext(fn1,'tpu');
  63.           if fileexists(fn1) then
  64.                begin
  65.                if filedate(fn,'') > filedate(fn1,'') then
  66.                     begin
  67.                     err := -1;
  68.                     ok := false;
  69.                     end;
  70.                end
  71.           else begin
  72.                fn1 := fn; forceext(fn1,'exe');
  73.                if fileexists(fn) then
  74.                     begin
  75.                     if filedate(fn,'') > filedate(fn1,'') then
  76.                          begin
  77.                          err := -1;
  78.                          ok := false;
  79.                          end;
  80.                     end
  81.                else begin
  82.                     err := -2;
  83.                     ok := false;
  84.                     end;
  85.                end;
  86.           end;
  87.      TPC := ok;
  88.      end;
  89.  
  90.